﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200030F RID: 783
	public class TMergeUpdateClause : TParseTreeNode
	{
		// Token: 0x1700065B RID: 1627
		// (get) Token: 0x06001BC2 RID: 7106 RVA: 0x0032F9CB File Offset: 0x0032DBCB
		// (set) Token: 0x06001BC3 RID: 7107 RVA: 0x0032F9D3 File Offset: 0x0032DBD3
		public virtual TResultColumnList UpdateColumnList
		{
			get
			{
				return this.updateColumnList;
			}
			set
			{
				this.updateColumnList = value;
			}
		}

		// Token: 0x1700065C RID: 1628
		// (get) Token: 0x06001BC4 RID: 7108 RVA: 0x0032F9DC File Offset: 0x0032DBDC
		// (set) Token: 0x06001BC5 RID: 7109 RVA: 0x0032F9E4 File Offset: 0x0032DBE4
		public virtual TExpression UpdateWhereClause
		{
			get
			{
				return this.updateWhereClause;
			}
			set
			{
				this.updateWhereClause = value;
			}
		}

		// Token: 0x1700065D RID: 1629
		// (get) Token: 0x06001BC6 RID: 7110 RVA: 0x0032F9ED File Offset: 0x0032DBED
		// (set) Token: 0x06001BC7 RID: 7111 RVA: 0x0032F9F5 File Offset: 0x0032DBF5
		public virtual TExpression DeleteWhereClause
		{
			get
			{
				return this.deleteWhereClause;
			}
			set
			{
				this.deleteWhereClause = value;
			}
		}

		// Token: 0x06001BC8 RID: 7112 RVA: 0x0032F9FE File Offset: 0x0032DBFE
		public override void init(object arg1, object arg2, object arg3)
		{
			this.updateColumnList = (TResultColumnList)arg1;
			if (arg2 != null)
			{
				this.updateWhereClause = (TExpression)arg2;
			}
			if (arg3 != null)
			{
				this.deleteWhereClause = (TExpression)arg3;
			}
		}

		// Token: 0x06001BC9 RID: 7113 RVA: 0x0032FA2C File Offset: 0x0032DC2C
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this.updateColumnList != null)
			{
				this.updateColumnList.doParse(psql, ESqlClause.set);
			}
			if (this.updateWhereClause != null)
			{
				this.updateWhereClause.doParse(psql, ESqlClause.where);
			}
			if (this.deleteWhereClause != null)
			{
				this.deleteWhereClause.doParse(psql, ESqlClause.unknown);
			}
		}

		// Token: 0x06001BCA RID: 7114 RVA: 0x0032FA79 File Offset: 0x0032DC79
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001BCB RID: 7115 RVA: 0x0032FA8C File Offset: 0x0032DC8C
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			if (this.updateColumnList != null)
			{
				this.updateColumnList.acceptChildren(v);
			}
			if (this.updateWhereClause != null)
			{
				this.updateWhereClause.acceptChildren(v);
			}
			if (this.deleteWhereClause != null)
			{
				this.deleteWhereClause.acceptChildren(v);
			}
			v.postVisit(this);
		}

		// Token: 0x04001A0C RID: 6668
		private TResultColumnList updateColumnList;

		// Token: 0x04001A0D RID: 6669
		private TExpression updateWhereClause;

		// Token: 0x04001A0E RID: 6670
		private TExpression deleteWhereClause;
	}
}
